透過反向代理的方式,讓前端整合 SSR 於前端專案中,並與後端分離,
在 Golang 中透過 httputil.ReverseProxy
便能達成反向代理的機制了。
package main
import (
"log"
"net/http"
"net/http/httputil"
)
func main() {
director := func(request *http.Request) {
request.URL.Scheme = "http"
request.URL.Host = ":8080"
}
reverseProxy := &httputil.ReverseProxy{Director: director}
server := http.Server{
Addr: ":3000",
Handler: reverseProxy,
}
if err := server.ListenAndServe(); err != nil {
log.Fatal(err.Error())
}
}
在這個範例中,將 Port:3000 的連線轉向 Port:8080。